home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 22 / Cream of the Crop 22.iso / program / snip9611.zip / EXTKWORD.H < prev    next >
C/C++ Source or Header  |  1996-11-24  |  3KB  |  101 lines

  1. /* +++Date last modified: 28-Sep-1996 */
  2.  
  3. /*====================================================================
  4.  
  5.     _MSC_VER        Microsoft C 6.0 and later
  6.     _QC             Microsoft Quick C 2.51 and later
  7.     __TURBOC__      Borland Turbo C, Turbo C++ and BC++
  8.     __BORLANDC__    Borland C++
  9.     __ZTC__         Zortech C and C++
  10.     __SC__          Symantec C++
  11.     __WATCOMC__     WATCOM C
  12.     __POWERC        Mix Power C
  13.     __GNUC__        Gnu C
  14.  
  15.     Revised:
  16.  
  17.     25-Sep-95  Bob Stout      Original from PC-PORT.H
  18.     30-Mar-96  Ed Blackman  OS/2 mods for OS/2 ver 2.0 and up
  19.     30-May-96  Andrew Clarke  Added support for WATCOM C/C++ __NT__ macro.
  20.     17-Jun-96  Bob Stout      Added __FLAT__ macros support
  21.     20-Aug-96  Bob Stout      Eliminate Win32 conflicts
  22. ======================================================================*/
  23.  
  24.  
  25. /* prevent multiple inclusions of this header file */
  26.  
  27. #ifndef EXTKWORD__H
  28. #define EXTKWORD__H
  29.  
  30. /*
  31. **  Watcom defines __FLAT__ for 32-bit environments and so will we
  32. */
  33.  
  34. #if !defined(__FLAT__) && !defined(__WATCOMC__) && !defined(_MSC_VER)
  35.  #if defined(__GNUC__)
  36.   #define __FLAT__ 1
  37.  #elif defined (_WIN32) || defined(WIN32) || defined(__NT__)
  38.   #define __FLAT__ 1
  39.  #elif defined(__INTSIZE)
  40.   #if (4 == __INTSIZE)
  41.    #define __FLAT__ 1
  42.   #endif
  43.  #elif (defined(__ZTC__) && !defined(__SC__)) || defined(__TURBOC__)
  44.   #if (4==sizeof(int))                          /* Technically illegal  */
  45.    #define __FLAT__ 1
  46.   #endif
  47.  #endif
  48. #endif
  49.  
  50. /*
  51. **  Correct extended keywords syntax
  52. */
  53.  
  54. #if defined(__OS2__)        /* EBB: not sure this works for OS/2 1.x */
  55.  #include <os2def.h>
  56.  #define INTERRUPT
  57.  #define HUGE
  58. #elif defined(_WIN32) || defined(WIN32) || defined(__NT__)
  59.  #define WIN32_LEAN_AND_MEAN
  60.  #define NOGDI
  61.  #define NOSERVICE
  62.  #undef INC_OLE1
  63.  #undef INC_OLE2
  64.  #include <windows.h>
  65.  #define INTERRUPT
  66.  #define HUGE
  67. #else /* ! Win 32 or OS/2 */
  68.  #if (defined(__POWERC) || (defined(__TURBOC__) && !defined(__BORLANDC__)) \
  69.        || (defined(__ZTC__) && !defined(__SC__))) && !defined(__FLAT__)
  70.   #define FAR far
  71.   #define NEAR near
  72.   #define PASCAL pascal
  73.   #define CDECL cdecl
  74.   #if (defined(__ZTC__) && !defined(__SC__)) || (defined(__SC__) && \
  75.         (__SC__ < 0x700))
  76.    #define HUGE far
  77.    #define INTERRUPT
  78.   #else
  79.    #define HUGE huge
  80.    #define INTERRUPT interrupt
  81.   #endif
  82.  #else
  83.   #if (defined(__MSDOS__) || defined(MSDOS)) && !defined(__FLAT__)
  84.    #define FAR _far
  85.    #define NEAR _near
  86.    #define HUGE _huge
  87.    #define PASCAL _pascal
  88.    #define CDECL _cdecl
  89.    #define INTERRUPT _interrupt
  90.   #else
  91.    #define FAR
  92.    #define NEAR
  93.    #define HUGE
  94.    #define PASCAL
  95.    #define CDECL
  96.   #endif
  97.  #endif
  98. #endif
  99.  
  100. #endif /* EXTKWORD__H */
  101.